iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0
Kubernetes

Kubernetes三十天就上手系列 第 2

Day 02- Kubernetes 架構與組件

  • 分享至 

  • xImage
  •  

Kubernetes 架構與組件

控制平面(Control Plane)和節點(Node)的深入解析

Kubernetes 是一個功能強大的容器編排平台,擁有複雜且靈活的架構。理解其核心架構和組件,對於有效管理和操作 Kubernetes Cluster 至關重要。在本文中,我們將深入介紹 Kubernetes 的控制平面(Control Plane)和節點(Node)的詳細內容。

Kubernetes 架構概述

下圖來自官方網站,展示了 Kubernetes 的架構:

d02p1
Kubernetes 的架構主要分為兩個部分:控制平面(Control Plane)和節點(Node)。控制平面負責 Cluster 的整體管理與控制,而節點則負責運行應用容器。

控制平面(Control Plane)

控制平面是 Kubernetes 的核心,負責管理 Cluster 的所有活動,包括調度、維護和監控。控制平面由以下主要組件組成:

  1. API 伺服器(API Server)
    API 伺服器是 Kubernetes 的核心組件,負責處理 Cluster 的所有 RESTful API 請求。它作為所有操作的入口,協調其他組件的工作。

    • 功能:處理並驗證 REST API 請求,並將請求轉發至相應的組件。
    • 組件:kube-apiserver
    • 通訊:所有的 kubectl 命令、儀表板請求以及其他操作都通過 API Server 進行。
  2. etcd
    etcd 是一個高可用的分佈式鍵值儲存,用於保存 Kubernetes Cluster 的所有狀態資料。

    • 功能:儲存 Cluster 設定資料和狀態資訊,如 Pod、Service、ConfigMap 等。
    • 組件:etcd
    • 重要性:etcd 資料的安全性與一致性對 Kubernetes Cluster 的正常運行至關重要。
  3. 控制器管理器(Controller Manager)
    控制器管理器運行各種控制迴圈,監控 Cluster 狀態並進行自動化調整,以達到預期狀態。

    • 功能:負責維持 Cluster 的期望狀態,包括副本控制、節點控制和端點控制等。
    • 組件:kube-controller-manager
    • 常見控制器
      • 副本控制器(ReplicationController)
      • 節點控制器(NodeController)
      • 端點控制器(EndpointsController)
  4. 調度器(Scheduler)
    調度器根據資源需求和調度策略,將 Pod 分配至合適的節點。

    • 功能:監控新創建且未分配節點的 Pod,並根據資源需求和調度策略選擇最佳節點。
    • 組件:kube-scheduler

節點(Node)

節點是 Kubernetes Cluster 中的工作負載單位,負責運行實際的應用容器。每個節點上運行以下主要組件:

  1. Kubelet
    Kubelet 是每個節點上的主要代理,負責與控制平面進行通訊並管理 Pod 的生命周期。

    • 功能:接收並執行 API Server 的指令,管理 Pod 和容器。
    • 組件:kubelet
  2. Kube-proxy
    Kube-proxy 是網路代理,負責實現 Kubernetes Service 的網路功能,包括負載平衡和網路轉發。

    • 功能:管理網路規則,確保 Pod 之間的通訊以及外部存取。
    • 組件:kube-proxy
  3. Container Runtimes
    Container Runtimes(如 Docker 或 containerd)負責運行和管理容器。

    • 功能:運行和管理應用容器。
    • 常見運行時:Docker, containerd

節點的運作過程

  1. 接收調度請求:調度器將 Pod 分配至節點後,API 伺服器會通知該節點的 Kubelet。
  2. 創建和管理 Pod:Kubelet 根據 Pod 定義,通過容器運行時創建並運行容器。
  3. 設定網路:Kube-proxy 設定網路規則,確保 Pod 之間以及外部的通訊。
  4. 監控和報告:Kubelet 持續監控 Pod 狀態並向 API 伺服器報告。

總結

Kubernetes 的架構由控制平面和節點組成,控制平面負責 Cluster 的管理與控制,而節點則負責運行應用容器。通過理解這些核心組件及其功能,我們可以更好地管理與優化 Kubernetes Cluster。這些知識將為後續的學習與實踐奠定堅實的基礎。


上一篇
Day 01- Kubernetes簡介與基礎概念
下一篇
Day 03- 安裝與設定 Kubernetes 環境
系列文
Kubernetes三十天就上手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言